home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 109 / EnigmaAmiga109CD.iso / dalla rivista / amiga.free / diropus4.12b_gpl / config / dopusiff.h < prev    next >
C/C++ Source or Header  |  2000-01-27  |  3KB  |  128 lines

  1. /*
  2.  
  3. Directory Opus 4
  4. Original GPL release version 4.12
  5. Copyright 1993-2000 Jonathan Potter
  6.  
  7. This program is free software; you can redistribute it and/or
  8. modify it under the terms of the GNU General Public License
  9. as published by the Free Software Foundation; either version 2
  10. of the License, or (at your option) any later version.
  11.  
  12. This program is distributed in the hope that it will be useful,
  13. but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. GNU General Public License for more details.
  16.  
  17. You should have received a copy of the GNU General Public License
  18. along with this program; if not, write to the Free Software
  19. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  20.  
  21. All users of Directory Opus 4 (including versions distributed
  22. under the GPL) are entitled to upgrade to the latest version of
  23. Directory Opus version 5 at a reduced price. Please see
  24. http://www.gpsoft.com.au for more information.
  25.  
  26. The release of Directory Opus 4 under the GPL in NO WAY affects
  27. the existing commercial status of Directory Opus 5.
  28.  
  29. */
  30.  
  31. /* IFF definitions for DOpus */
  32.  
  33. #ifndef DOPUS_IFF
  34. #define DOPUS_IFF
  35.  
  36. /* Form types and other defines */
  37.  
  38. #define ID_8SVX MAKE_ID('8','S','V','X')
  39. #define ID_ANHD MAKE_ID('A','N','H','D')
  40. #define ID_ANIM MAKE_ID('A','N','I','M')
  41. #define ID_BMHD MAKE_ID('B','M','H','D')
  42. #define ID_BODY MAKE_ID('B','O','D','Y')
  43. #define ID_CAMG MAKE_ID('C','A','M','G')
  44. #define ID_CHAN MAKE_ID('C','H','A','N')
  45. #define ID_CMAP MAKE_ID('C','M','A','P')
  46. #define ID_CRNG MAKE_ID('C','R','N','G')
  47. #define ID_CTBL MAKE_ID('C','T','B','L')
  48. #define ID_DLTA MAKE_ID('D','L','T','A')
  49. #define ID_DPAN MAKE_ID('D','P','A','N')
  50. #define ID_DYCP MAKE_ID('D','Y','C','P')
  51. #define ID_GRAB MAKE_ID('G','R','A','B')
  52. #define ID_ILBM MAKE_ID('I','L','B','M')
  53. #define ID_SHAM MAKE_ID('S','H','A','M')
  54. #define ID_VHDR MAKE_ID('V','H','D','R')
  55.  
  56. #define CRNG_NORATE 36
  57. #define CRNG_ACTIVE 1<<0
  58. #define CRNG_REVERSE 1<<1
  59. #define CY_CYCL 0
  60. #define CY_WAIT 1
  61.  
  62. /* IFF Chunk structures */
  63.  
  64. typedef struct {
  65.     ULONG ckID;
  66.     ULONG ckSize;
  67. } ChunkHeader;
  68.  
  69. typedef struct {
  70.     ULONG ckID;
  71.     ULONG ckSize;
  72.     UBYTE ckData[1];
  73. } Chunk;
  74.  
  75. /* IFF Animation structures */
  76.  
  77. typedef struct {
  78.     UWORD version;
  79.     UWORD nframes;
  80.     unsigned char framespersecond;
  81.     char pad;
  82.     UWORD flags;
  83. } DPAnimChunk;
  84.  
  85. typedef struct {
  86.     UBYTE operation;
  87.     UBYTE mask;
  88.     UWORD w,h;
  89.     WORD x,y;
  90.     ULONG abstime;
  91.     ULONG reltime;
  92.     UBYTE interleave;
  93.     UBYTE pad0;
  94.     ULONG bits;
  95.     UBYTE pad[16];
  96. } AnimHdr;
  97.  
  98. /* IFF ILBM structures */
  99.  
  100. typedef struct BitHeader
  101. {
  102.     UWORD w,h;
  103.     UWORD x,y;
  104.     UBYTE nPlanes;
  105.     UBYTE masking;
  106.     UBYTE compression;
  107.     UBYTE flags;
  108.     UWORD transparentColor;
  109.     UBYTE xAspect, yAspect;
  110.     WORD pageWidth, pageHeight;
  111. } BitMapHeader;
  112.  
  113. #define BMHF_CMAPOK 1<<7
  114.  
  115. typedef struct C_Range
  116. {
  117.     WORD pad1;
  118.     WORD rate;
  119.     WORD active;
  120.     UBYTE low,high;
  121. } CRange;
  122.  
  123. struct SHAMData {
  124.     UWORD ColorTable[200][16];
  125. };
  126.  
  127. #endif
  128.